DEFINITION MODULE ProgramArgs;
 
  (* Access to program arguments *)
 
IMPORT IOChan;
 
TYPE
  ChanId = IOChan.ChanId;
 
PROCEDURE ArgChan (): ChanId;
  (* Returns a value that identifies a channel for reading program arguments *)
 
PROCEDURE IsArgPresent (): BOOLEAN;
  (* Tests if there is a current argument to read from. If not, read <=
     IOChan.CurrentFlags() will be FALSE, and attempting to read from the argument channel
     will raise the exception notAvailable.
  *)
 
PROCEDURE NextArg ();
  (* If there is another argument, causes subsequent input from the argument device to come
     from the start of the next argument.  Otherwise there is no argument to read from, and
     a call of IsArgPresent will return FALSE.
  *)
 
END ProgramArgs.
